Diese Präsentation behandelt den Weg von SGML über XML hin zu HTML und untersucht die Entwicklungen und Unterschiede zwischen diesen Markup-Sprachen. Diese Folie illustriert die Beziehung und die Entwicklung von SGML, XML und XHTML und zeigt, wie diese Technologien als Auszeichnungssprachen und Anwendungen miteinander verbunden sind. SGML ist eine Meta-Sprache, die entwickelt wurde, um neue Auszeichnungssprachen zu definieren. SGML ist eine umfassende und komplexe Sprache. Innerhalb der SGML-Welt wurde XML als eine Untermenge von SGML entwickelt. XML entfernt viele der syntaktischen Freiheiten von SGML, um die maschinelle Verarbeitung zu vereinfachen und eine strengere Syntax einzuführen. XHTML, die Extensible Hypertext Markup Language, ist eine Anwendung, die auf XML basiert und HTML neu definiert. XHTML verwendet eine Dokumenttypdefinition (DTD), um die Struktur und Regeln der Sprache zu definieren. Die Standard Generalized Markup Language (SGML) ist also als Meta-Sprache dazu gedacht, neue Auszeichnungssprachen für den Dokumentenaustausch zu definieren. Insofern ist SGML also gar keine Sprache im engeren Sinne, sondern ein System um Sprachen zu erstellen. Es wurde neunzehnhundert-sechsundachtzig von der ISO standardisiert. Die grundlegende Idee einer Meta-Sprache ist es, sich für einen bestimmten Anwendungszweck eine Sprache zusammenzustellen. Hierbei liegt der Fokus von SGML auf Sprachen für das Erstellen von großen und umfangreichen Dokumenten, zum Beispiel der Dokumentation für eine komplexe technische Anlage. Der große Vorteil von SGML liegt darin, dass die Dokumente als reine Textdokumente vorliegen und somit leicht mit beliebigen Werkzeugen wie Texteditoren bearbeitet werden können. Auszeichnungen im Text werden bei SGML-basierten Sprachen durch spezielle Markierungen (Tags) vorgenommen, die zum Beispiel Zitate kennzeichnen oder Querverweise zu anderen Dokumenten markieren. SGML trifft als Meta-Sprache allerdings keine Aussagen darüber, welche Tags in einem Dokument vorkommen dürfen sondern legt nur die Art fest, wie man die Tags definieren kann. HTML ist eine Sprache, die mit Hilfe von SGML definiert wurde und die einen genau festgelegten Satz von Tags besitzt. In der Terminologie von SGML sagt man auch, dass HTML eine SGML-Anwendung ist. Leider hat SGML einige Eigenschaften, die eine maschinelle Verarbeitung von SGML-Dokumenten erheblich erschweren: Es gibt zum Beispiel eine ganze Reihe von syntaktischen Freiheiten und Abkürzungen, die für menschliche Autoren durchaus angenehm sein können, bei der Verarbeitung durch ein Programm aber eine unnötige Komplexität erzeugen. Die Freiheiten machen auch den SGML-Standard unnötig umfangreich (circa 500 Seiten) und schwer zu verstehen. Aus diesem Grund hat sich SGML außerhalb des HTML-Umfelds nie in breiter Front durchsetzen können. Was ist nun XML? Inspiriert vom Erfolg von HTML und den Schwächen von SGML begann das World Wide Web Consortium (W3C) Ende der neunzehnhundert-neunziger Jahre damit, eine Untermenge von SGML zu definieren, die viele der unnötigen Freiheiten aus SGML entfernt aber trotzdem die Möglichkeit bietet, beliebige Sprachen zu definieren und damit eine vollwertige Meta-Sprache ist. Diese Anstrengungen mündeten neunzehnhundert-achtundneunzig in die erste W3C-Recommendation zur Extensible Markup Language (XML). Dadurch, dass XML eine Untermenge von SGML ist, konnten die Werkzeuge und Technologien von SGML für XML weiterverwendet werden. Inzwischen hat sich die Situation allerdings insofern geändert, dass SGML keine Bedeutung mehr hat und ausschließlich XML zum Einsatz kommt. XML also ist eine Untermenge von SGML. XML lässt dabei alles weg, was die maschinelle Verarbeitung erschwert; es ist also eine strengere Syntax als SGML. XML ist eine Technologie, um Sprachen zu definieren. Es ist eine Metasprache oder eine Inhaltsbeschreibungssprache. XML-Dokumente können selbstbeschreibend sein. Ein XML-Dokument besteht aus Textzeichen und ist damit menschenlesbar. Was ist wohlgeformtes XML? Das Dokument besitzt genau ein Wurzelelement. Als Wurzelelement wird dabei das jeweils äußerste Element bezeichnet, zum Beispiel html in XHTML. Alle Elemente mit Inhalt besitzen einen Beginn- und einen End-Auszeichner, zum Beispiel "eintrag - Eintrag eins - Ende Eintrag". Elemente ohne Inhalt können auch in sich geschlossen sein, wenn sie aus nur einem Auszeichner bestehen, die mit Schrägstrich und spitzer Klammer zu abschließt. Die Beginn- und End-Auszeichner sind ebenentreu-paarig verschachtelt. Das bedeutet, dass alle Elemente geschlossen werden müssen, bevor die End-Auszeichner des entsprechenden Elternelements oder die Beginn-Auszeichner eines Geschwisterelements erscheint. Ein Element darf nicht mehrere Attribute mit demselben Namen besitzen. Was ist gültiges XML? Soll XML für einen genormten Datenaustausch verwendet werden, so sollte das Format der Tags mittels einer Grammatik definiert sein. Eine mögliche Definition für eine solche Grammatik ist eine Dokumenttypdefinition (DTD) oder ein XML Schema. Der Standard definiert ein XML-Dokument als gültig, wenn es wohlgeformt ist, den Verweis auf eine Grammatik enthält und das durch die Grammatik beschriebene Format strikt einhält. Die Folie zeigt ein Beispiel für ein standalone XML-Dokument, das keine Grammatikreferenz enthält. Ein standalone XML-Dokument bedeutet, dass es selbstständig und ohne externe Definitionen oder DTD auskommt. Dies wird durch das Attribut standalone "yes" in der XML-Deklaration angezeigt. Das Dokument beginnt mit der XML-Deklaration. Diese Deklaration spezifiziert die Version von XML, die Zeichenkodierung und dass das Dokument eben keine externen Definitionen benötigt. Das eigentliche XML-Dokument ist in einer hierarchischen Struktur organisiert, die aus verschiedenen Elementen besteht. Das Wurzelelement ist verzeichnis, das das gesamte Dokument umschließt. Innerhalb dieses Wurzelelements gibt es ein titel-Element, das den Titel "Wikipedia Städteverzeichnis" enthält. Unterhalb des titel-Elements befinden sich mehrere eintrag-Elemente, die jeweils einen Eintrag im Städteverzeichnis darstellen. Jedes eintrag-Element enthält zwei Kindelemente: stichwort und eintragstext. Das stichwort-Element enthält den Namen der Stadt, während das eintragstext-Element eine Beschreibung der Stadt liefert. Im ersten eintrag-Element ist das stichwort "Genf", und der zugehörige eintragstext lautet "Genf ist der Sitz von". Im zweiten eintrag-Element ist das stichwort "Köln", und der eintragstext lautet "Köln ist eine Stadt, die". Die Struktur des Dokuments ist gut geformt, da es genau ein Wurzelelement gibt, alle Elemente korrekt geöffnet und geschlossen werden, und die Verschachtelung der Elemente klar und konsistent ist. Dies entspricht den Anforderungen an ein wohlgeformtes XML-Dokument. Was ist HTML? Bei der Hypertext Markup Language (HTML) handelt es sich um eine Anwendung von SGML. Man spricht von einer Auszeichnungssprache (markup language), weil bestimmte Bestandteile eines Dokumentes durch spezielle Tags ausgezeichnet werden, wobei das gesamte Dokument in reiner Textform vorliegt. Der Web-Browser, als Anzeigekomponente für die Dokumente, setzt die Auszeichnungen dann in eine visuelle Darstellung um. Die Möglichkeit verschiedene Dokumente miteinander zu verknüpfen (hypertext) oder Verweise zu anderen Stellen desselben Dokuments aufzunehmen ist eine andere Schlüsseleigenschaft von HTML. Die Verknüpfungen werden hierbei durch Hyperlinks hergestellt. Ursprünglich stand der Inhalt und nicht das Layout im Vordergrund. In den ersten Versionen von HTML war das Layout und die Darstellung einzig und allein Sache des Browsers und nicht des Autors einer HTML-Seite. Der Benutzer des Browsers konnte zum Beispiel die Schriftart und Größe für die Anzeige frei festlegen; der Autor der Web-Seite hatte hierauf keinen Einfluss. Zusätzlich konnte man noch Bilder zur Veranschaulichung des Textes einbinden, an Audio oder Video hat man damals schon wegen der begrenzten Bandbreiten nicht gedacht. Für wissenschaftliche Veröffentlichungen war der ursprüngliche Ansatz von HTML gut geeignet. Für Unternehmenswebseiten oder E-Commerce-Anwendungen aber vollkommen unpassend. Aus diesem Grund setzten sich sehr schnell Erweiterungen durch, die erlauben, das Layout und die Darstellung von HTML-Seiten bis in das kleinste Detail zu bestimmen. Dies geschieht heute über Cascading Style Sheets (CSS). Zusätzlich hielten interaktive Elemente mit Formularen und JavaScript Einzug in die Web-Seiten. Und was ist XHTML? Bei HTML handelt es sich um eine über SGML definierte Auszeichnungssprache. HTML ist also eine SGML-Anwendung. XML ist eine neue, schlanke Variante von SGML. Daher liegt die Idee nahe, HTML noch einmal neu auf Basis von XML anstatt von SGML zu definieren und somit eine neue und saubere HTML-Variante als XML-Anwendung zu definieren. Genau dies hat das W3C im Jahr zweitausend mit der Standardisierung von XHTML, das HTML völlig neu mit Hilfe von XML definiert hat. XHTML ist syntaktisch hundertprozentig kompatibel zu wichtigen XML-Standardsprachen. Durch die gemeinsame syntaktische Grundlage auf der Basis von XML ist es auch möglich, das Auslesen und Verarbeiten über Programmiersprachen zu vereinheitlichen. XHTML ist also XML-gerechtes HTML. Der Nachbau von HTML vier in XHTML eins ist so weit gelungen, dass es in XHTML die gleichen Elemente, Attribute und Verschachtelungsregeln gibt wie in HTML. Und was ist nun HTML5? Das W3C hat am 2014 die fertige HTML5-Spezifikation vorgelegt. HTML5 wird damit als Nachfolger von HTML-vier die Kernsprache ("core language") des Webs. Sie ersetzt damit die Standards HTML 4.01, XHTML 1 und DOM HTML Level 2. Sie bietet neue Funktionen wie Video, Audio, lokalen Speicher und dynamische 2D und 3D-Grafiken, die von HTML4 nicht direkt unterstützt wurden und sich ohne HTML5 nur mit zusätzlichen Plugins (zum Beispiel Adobe Flash) umsetzen ließen. Zukunftsweisend sind weiterhin neue Elemente, die eine verbesserte semantische Struktur ermöglichen. Die verschiedenen, aus Gründen der Abwärtskompatibilität vorhandenen unübersichtlichen Doctypes wurden stark vereinfacht zu Doctype HTML. Die Dokumenttyp-Deklaration ist ein aus SGML und XML übernommenes Konzept. Andere Dokumenttyp-Deklarationen sollten Sie nicht mehr verwenden. HTML5 hat sich bis heute vollständig durchgesetzt.